<?php

namespace app\admin\controller;

use think\Controller;

class Login extends Controller  //类文件和类名大写！！！
{
    // echo encrypt_password('123456'); die;    //将输出的密码填带数据库tpshop_manager中

    public function login()
    {
        //一个方法 处理两个业务逻辑：页面展示  表单提交
        if (request()->isPost()) {
            //post请求 表单提交
            //接收参数 username password code
            $params = input();
            //参数检测 表单验证
            $rule = [
                'username|用户名' => 'require',
                'password|密码' => 'require|length:6,16',  //长度设置为6-16
                'code|验证码' => 'require',
                // 'code|验证码' => 'require|captcha:login',   //login是标记对照的验证码为登录（login）验证码
            ];
            $res = $this->validate($params, $rule);
            if ($res !== true) {
                $this->error($res);
            }
            //验证码手动校验
            if (!captcha_check($params['code'],'login')) {
                $this->error('验证码错误！');
            }
            $res = $this->validate($params, $rule);
            if ($res !== true) {
                $this->error($res);
            }
            //查询管理员用户表
            $password = encrypt_password($params['password']);
            $manager = \app\admin\model\Manager::where('username', '=', $params['username'])->where('password', '=', $password)->find();
            $manager = \app\admin\model\Manager::where(['username' => $params['username'], 'password' => $password])->find();
            if ($manager) {
                //登录成功
                //设置登录标识到session
                session('manager_info', $manager->toArray());
                //页面跳转
                $this->success('登录成功', 'admin/index/index');
            } else {
                //用户名错误
                $this->error('用户名或密码错误');
            }
        } else {
            //get请求 页面展示
            //临时关闭全局模板布局
            $this->view->engine->layout(false);
            return view();
        }
    }


/*
    //     if(request()->isGet()) {
    //         //get请求  页面展示
    //         //临时关闭全局模板布局
    //         $this->view->engine->layout(false);
    //         return view();
    //     }
    //     //post请求，表单提交
    //     //接收数据
    //     $data = request()->param();
    //     $params = input();
    //     //参数检测 表单验证
    //     $rule = [
    //         'username|用户名' => 'require',
    //         'password|密码' => 'require|length:6,16',  //长度设置为6-16\
    //         // 'code|验证码' => 'require',
    //         // 'code|验证码' => 'require|captcha:login',
    //     ];
    //     $res = $this->validate($data, $rule);
    //     if($res !== true) {
    //         $this->error($res);
    //     }
    //     //验证码手动校验
    //     if(!captcha_check($params['code'], 'login')) {
    //         $this->error('验证码错误！');
    //     }
    //     $msg = [
    //         'username.require' => '用户名不能为空',
    //         'password.require' => '密码不能为空',
    //         'password.length' => '密码长度为6到16位'
    //     ];
    //     $validate = new \think\Validate($rule, $msg);
    //     if(!$validate->check($data)) {
    //         $error = $validate->getError();
    //         $this->error($error);
    //     }
    //     //查询管理员表登录认证， 用户名和密码一起查询
    //     $password = encrypt_password($data['password']);
    //     $user = \app\admin\model\Manager::where('username','=', $data['username'])->where('password', '=', $password)->find();
    //     //批量条件 查询写法
    //     /*
    //     $where = [
    //         'username' => $data['username'],
    //         'password' => $data['password'],
    //     ];
    //     $user = \app\admin\model\Manager::where($where)->find();
    //     */   //原有方法
    //     //判断查询结果
    //     /*
    //     dump($data['username']);    //查看输入的用户名
    //     // dump($password);    //查看输入的密码
    //     // dump(\app\admin\model\Manager::where('username', '=', $data['username']));
    //     // dump(\app\admin\model\Manager::where('username', '=', 'admin')->count());
    //     // dump(\app\admin\model\Manager::where('username', '=', $data['username'])->count());
    //     // dump($user);
    //     */  //究极改错  ！！！  在数据库没有提交数据！！！！！！！！！！！！！！！！
    //     if($user) {
    //         //查询到，登录成功  设置登录标识到session
    //         session('manager_info', $user->toArray());
    //         //页面跳转
    //         $this->success('登录成功', 'admin/index/index');
    //     } else {
    //         //没有查到用户，用户名或密码错误
    //         $this->error('用户名或者密码错误');
    //     }
    // }
        //*/

    public function logout()
    {
        //清空所有session
        session(null);
        //页面跳转 跳转到登录页
        // $this->success('退出成功', 'admin/login/login');
        $this->redirect('admin/login/login');
    }

    public function test()
    {
        //session函数的使用
        /*
        // //设置session
        // session('name', 'thinkphp');
        // //获取session
        // $name = session('name');
        // dump($name);
        //设置session
        session('person', ['name' => 'thinkphp', 'age'=> 18]);
        //获取session
        $person = session('person');
        dump($person);
        dump($person['name']);
        //直接去session中数组中的指定键值对
        dump(session('person.name'));
        dump(session('person.age'));
        //删除制定session
        // session('person', null);
        // dump(session('person'));
        //删除所有session
        session(null);
        */

        //cookie函数 常用用法
        //设置cookie
        cookie('username', 'thinkphp5.0', 5);
        //读取
        dump(cookie('username'));
        //删除
        cookie('username', null);
        dump(cookie('username'));
    }
}
